package com.yuwen.example.consumer;

/**
 * @ClassNameEasyConsumerExample
 * @Description TODO
 * @Author钰玟
 * @Date2025/3/29 下午8:00
 * @Version 1.0
 **/

import com.yuwen.example.common.model.User;
import com.yuwen.example.common.service.UserService;
import com.yuwen.yuwenRPC.proxy.ServiceProxyFactory;

/**
 * 简易消费服务示例
 */
public class EasyConsumerExample {
    public static void main(String[] args) {
        //TODO 获取UserService实例
        /**
         * 需要注意的是，现在是无法获取到 userService 实例的，所以预留为 null。
         我们之后的目标是，能够通过 RPC 框架，快速得到一个支持远程调用服务提供者的代理对象，
         像调用本地方法一样调用 UserService 的方法。
        */


        /**
         * 1. 静态代理
         * UserService userService = new UserServiceProxy();
         */

        /**
         * 2. 动态代理
         */
        UserService userService = ServiceProxyFactory.getProxy(UserService.class);


        User user = new User();
        user.setName("yuwen");
        //调用 userService的实现类 获取对象user
        User newUser = userService.getUser(user);
        if(newUser != null) {
            System.out.println(newUser.getName());
        }else{
            System.out.println("newUser == null");
        }

    }
}
